#ifndef RECTANGLE_H
#define RECTANGLE_H
#include "Shape.h"

/**
 * Rectangle
 * Represents a Rectangle
 * @author: Brad Rippe (brippe@fullcolll.edu) 
 */
class Rectangle: public Shape {
public:

	/**
	 * Constructs a Rectangle
	 */
	Rectangle();
	
	/**
	 * Constructs a Rectangle
	 * @param aWidth the rectangle's width
	 * @param aHeight the rectangle's height
	 */
	Rectangle(double aWidth, double aHeight);
	
	/**
	 * Constructs a Rectangle
	 * @param aWidth the rectangle's width
	 * @param aHeight the rectangle's height
	 * @param aColor the rectangle's color
	 * @param aFilled determines if the rectangle is filled or not
	 */
	Rectangle(double aWidth, double aHeight, string aColor, bool aFilled);
	
	/**
	 * Gets the rectangle's width
	 * @return the rectangle's width
	 */
	double getWidth();
	
	/**
	 * Sets the rectangle's width
	 * @param aWidth the new width
	 */
	void setWidth(double);
	
	/**
	 * Gets the rectangle's height
	 * @return the rectangle's height
	 */
	double getHeight();
	
	/**
	 * Sets the rectangle's height
	 * @param aHeight the new height
	 */
	void setHeight(double);
	
	/**
	 * Gets the rectangle's area
	 * @return the area of the rectangle
	 */
	double getArea();
	
	/**
	 * Gets the perimeter of the rectangle
	 * @return the perimeter
	 */
	double getPerimeter();

private:
  double mWidth;
  double mHeight;
};
#endif
